#pragma once

namespace DeForm
{
	public ref class HueEffectDescription sealed: IEffectDescription
	{
	public:
		HueEffectDescription(float angle);
		HueEffectDescription();

		virtual EffectType GetEffectType()
		{
			return EffectType::Hue;
		}

		virtual int GetParametersCount()
		{
			return 1;
		}

		virtual EffectParameterValue^ GetParameter(int index)
		{
			switch (index)
			{
			case 0:
				return ref new EffectParameterValue(D2D1_HUEROTATION_PROP_ANGLE, Angle);
			}

			return nullptr;
		}

		property float Angle;
	};
}

